home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / M-More Monthly Disks / (c)m1.d64 / elec srvc calc.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  8KB  |  353 lines

  1. 10 REM ********************************
  2. 12 REM *                              *
  3. 14 REM *           ELECTRICAL         *
  4. 16 REM *       SERVICE CALCULATOR     *
  5. 18 REM *                              *
  6. 20 REM ********************************
  7. 22 :
  8. 24 REM  BY PAUL ROYLE      (NOV 83)
  9. 26 REM  71 AMORO DR
  10. 28 REM  REXDALE ONT.
  11. 29 REM  M9W 4S3    CANADA
  12. 30 :
  13. 32 X =PEEK(50003):POKE50003,0:Y=PEEK(50003):POKE50003,X
  14. 34 UC=12:LC=14:TEXT=59468:RDP=144
  15. 36 IFY=160THENSOP=88:SPT=85
  16. 38 IFY=1 THENSOP=49:SPT=46
  17. 40 IFY=0THENSOP=52:SPT=49:UC=21:LC=23:TEXT=53272:RDP=788:POKE53280,6
  18. 42 POKE TEXT,LC:POKERDP,SOP
  19. 44 DIM TWOTBL$(13,2),TENTBL$(13,2),SIXTBL(6,28),RL(30),RW(30),RM$(30),NR(30)
  20. 46 P$="[197][204][197][195][212][210][201][195][193][204] [211][197][210][214][201][195][197][160][195][193][204][195][213][204][193][212][207][210]"
  21. 48 PRINT"[147]";
  22. 50 FORI=1TO36
  23. 52 PRINT"[166]";
  24. 54 NEXTI
  25. 56 FORI=1TO19
  26. 58 PRINT"[157][166]";
  27. 60 NEXT
  28. 62 FORI=1TO35
  29. 64 PRINT"[157][157][166]";
  30. 66 NEXTI
  31. 68 FORI=1TO19
  32. 70 PRINT"[157][145][166]";
  33. 72 NEXTI
  34. 74 PRINT"[208]AUL [210]OYLE [211]OFTWARE"
  35. 76 PRINT"[208]RESENTS":FORT=1TO100 :NEXTT
  36. 78 FOR I=1TOINT((40-(LEN(P$)))/2)
  37. 80 PRINT"";
  38. 82 NEXTI
  39. 84 FORI=1TOLEN(P$)
  40. 86 FORT=1TO10:NEXTT
  41. 88 PRINTMID$(P$,I,1);
  42. 90 NEXTI:PRINT""
  43. 92 FOR I=1TOINT((40-(LEN(P$)))/2)
  44. 94 PRINT"";
  45. 96 NEXTI
  46. 98 PRINT"[157][183]";: FORI=1TOLEN(P$)+1
  47. 100 FORT=1TO10:NEXTT
  48. 102 PRINT"[183]";
  49. 104 NEXTI:PRINT""
  50. 106 PRINT" [200][201][212][160][211][208][193][195][197][160][212][207][160][211][212][193][210][212] [146]"
  51. 108 GETA$:IFA$=""THEN108
  52. 110 GOSUB 356: REM SET UP DATA TABLE
  53. 112 :
  54. 114 REM *****   M E N U   *****
  55. 116 :
  56. 118 PRINT"[147]";
  57. 120 FORI=1TO36
  58. 122 PRINT"[166]";
  59. 124 NEXTI
  60. 126 FORI=1TO19
  61. 128 PRINT"[157][166]";
  62. 130 NEXT
  63. 132 FORI=1TO35
  64. 134 PRINT"[157][157][166]";
  65. 136 NEXTI
  66. 138 FORI=1TO19
  67. 140 PRINT"[157][145][166]";
  68. 142 NEXTI
  69. 144 PRINT
  70. 146 PRINT"[197][204][197][195][212][210][201][195][193][204] [211][197][210][214][201][195][197][160][195][193][204][195][213][204][193][212][207][210]"
  71. 148 PRINT"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
  72. 150 PRINT"[205][160][197][160][206][160][213]"
  73. 152 PRINT"[183] [183] [183] [183]"
  74. 154 PRINT"1[146]  [211]TART [211]ERVICE [195]ALCULATOR"
  75. 156 PRINT"2[146]  [211]TUDENT'S [201]NSTRUCTIONS"
  76. 158 PRINT"3[146]  [201]NSTRUCTOR'S [201]NSTRUCTIONS"
  77. 160 PRINT"4[146]  [205]ODIFICATIONS"
  78. 162 PRINT"5[146]  [209]UIT "
  79. 164 INPUT"         ENTER A NUMBER    [191][157][157][157]";M$
  80. 166 M$=LEFT$(M$,1)
  81. 168 IFM$="1"THEN222
  82. 170 IFM$="2"THEN180
  83. 172 IFM$="3"THEN550
  84. 174 IFM$="4"THEN590
  85. 176 IFM$="5"THEN218
  86. 178 GOTO 116
  87. 180 PRINT"[147][211][212][213][196][197][206][212]'[211][160][201][206][211][212][210][213][195][212][201][207][206][211]"
  88. 182 PRINT"[183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183]"
  89. 184 PRINT"    [212]HIS PROGRAM WAS WRITTEN TO MAKE"
  90. 186 PRINT"[211]ERVICE [195]ALCULATIONS A BREEZE.  [201]NSTEAD"
  91. 188 PRINT"OF HAVING TO CONSULT THE ELECTRIC  CODE"
  92. 190 PRINT" BOOK, YOU JUST HAVE TO PUNCH THE DATA"
  93. 192 PRINT" INTO THE COMPUTER.  [217]OU ENTER THE SIZE"
  94. 194 PRINT" OF THE HOUSE, THE SMALL APPLIANCE LOAD"
  95. 196 PRINT"   THE RANGE LOAD, AND THE DIMENTIONS "
  96. 198 PRINT" OF THE ROOMS.  [212]HE COMPUTER WILL THEN"
  97. 200 PRINT"FIGURE OUT THE CONDUCTOR SIZES, CONDUIT"
  98. 202 PRINT" SIZES, THE SIZE OF THE MAIN DISCONNECT"
  99. 204 PRINT" AND THE NUMBER OF RECEPTACLES REQUIRED"
  100. 206 PRINT" [217]OU CAN HAVE SCREEN OR PRINTER OUTPUT"
  101. 208 PRINT"    [193]LL YOU HAVE TO DO IS ANSWER THE "
  102. 210 PRINT"    COMPUTER'S QUESTIONS.  [200][193][214][197][160][198][213][206]!"
  103. 212 PRINT"      [200]IT [211]PACE [212]O [210]ETURN [212]O [205][197][206][213]       [146]"
  104. 214 GETA$:IFA$=""THEN 214
  105. 216 GOTO 116
  106. 218 POKERDP,SPT:POKETEXT,UC:IFY=0THENPOKE53280,14
  107. 220 PRINT"[147]":END
  108. 222 REM *****     START     *******
  109. 224 :
  110. 226 REM ** INPUTS AND CALCULATIONS **
  111. 228 :
  112. 230 GOSUB258
  113. 232 :
  114. 234 REM ******   RECEPTACLES   ******
  115. 236 :
  116. 238 GOSUB404
  117. 240 :
  118. 242 REM ******     OUTPUT       ******
  119. 244 :
  120. 246 GOSUB446
  121. 248 :
  122. 250 GOTO 116: REM RETURN TO MENU
  123. 252 :
  124. 254 REM ** INPUT AND CALC. AREA **
  125. 256 :
  126. 258 PRINT"[147]"
  127. 260 PRINT"[197]NTER THE FLOORSPACE OF THE HOUSE IN     [211]QUARE [198]EET"
  128. 262 INPUT FS
  129. 264 GLL=5000
  130. 266 RFS=FS-1000
  131. 268 IF RFS<0THEN274
  132. 270 GLL=GLL+1000:RFS=RFS-1000:GOTO268
  133. 272 :
  134. 274 PRINT" [197]NTER THE SMALL APPLIANCE LOAD IN       KILOWATTS"
  135. 276 INPUT SAL :SAL=SAL*1000
  136. 278 TEL=GLL+SAL
  137. 280 BTI=TEL/120
  138. 282 TBC=INT((BTI/12)+.9999)
  139. 284 :
  140. 286 PRINT"[197]NTER THE ACTUAL RANGE LOAD IN           KILOWATTS"
  141. 288 INPUT RAN
  142. 290 RAN=RAN*1000
  143. 292 ARAN=6000+.4*(RAN-12000)
  144. 294 :
  145. 296 RTEL= GLL+ SAL+ ARAN
  146. 298 TC=RTEL/240
  147. 300 :
  148. 302 FORI=1TO13
  149. 304 IF VAL(TWOTBL$(I,2))<TC THEN NEXTI
  150. 306 MFS$=TWOTBL$(I,1)
  151. 308 :
  152. 310 FORI=1TO13
  153. 312 IF VAL(TWOTBL$(I,2)) < (RAN/240)THEN NEXTI
  154. 314 CRS=VAL(TWOTBL$(I,1))
  155. 316 :
  156. 318 FORI=1TO13
  157. 320 IF TENTBL$(I,1)<>MFS$THEN NEXTI
  158. 322 CDI=VAL(TENTBL$(I,2))
  159. 324 :
  160. 326 FORI=1TO26
  161. 328 IFSIXTBL(0,I)<CDI THEN NEXTI
  162. 330 CAP=I
  163. 332 :
  164. 334 FORI=1TO6
  165. 336 IFSIXTBL(I,CAP)<3THEN NEXTI
  166. 338 CS=SIXTBL(I,0)
  167. 340 :
  168. 342 FORI=1TO5
  169. 344 IF MDS(I)<TC THEN NEXTI
  170. 346 MD=MDS(I)
  171. 348 RETURN
  172. 350 :
  173. 352 REM  **** SET UP DATA TABLES ****
  174. 354 :
  175. 356 PRINT"[147]    [215]AIT WHILE [201] SET UP THE DATA TABLE"
  176. 358 FORI=1 TO 2
  177. 360 FORJ=1 TO 13
  178. 362 READ TWOTBL$(J,I)
  179. 364 NEXTJ,I
  180. 366 :
  181. 368 FORI=1 TO 2
  182. 370 FORJ=1 TO 13
  183. 372 READ TENTBL$(J,I)
  184. 374 NEXTJ,I
  185. 376 :
  186. 378 FORI=0 TO 28
  187. 380 FORJ=0 TO 6
  188. 382 READ SIXTBL(J,I)
  189. 384 NEXTJ,I
  190. 386 :
  191. 388 FORI=1TO5
  192. 390 READ MDS(I)
  193. 392 NEXTI
  194. 394 :
  195. 396 RETURN
  196. 398 :
  197. 400 REM  INPUT ROOM SIZES FOR RECPTCLS.
  198. 402 :
  199. 404 PRINT"[147][196]O YOU WANT TO KNOW HOW MANY"
  200. 406 PRINT"RECEPTACLES ARE NEEDED PER ROOM?"
  201. 408 INPUTA$
  202. 410 IFLEFT$(A$,1)="N"THEN RETURN
  203. 412 PRINT"[147]              [210][197][195][197][208][212][193][195][204][197][211]"
  204. 414 RN=1:RM$(1)="STOP"
  205. 416 :
  206. 418 PRINT"[197]NTER THE ROOM NAME  (STOP TO QUIT)"
  207. 420 INPUT RM$(RN)
  208. 422 IF RM$(RN)="STOP" THEN438
  209. 424 :
  210. 426 PRINT" [206]OW ENTER THE DIMENSIONS OF THE ROOM"
  211. 428 INPUT RL(RN),RW(RN)
  212. 430 NR(RN) = INT (((( RL(RN)+ RW(RN)) *2) /12)+.999)
  213. 432 RN=RN+1
  214. 434 GOTO418
  215. 436 :
  216. 438 RETURN
  217. 440 :
  218. 442 REM  *****  OUTPUT AREA *****
  219. 444 :
  220. 446 PRINT"[147][196]O YOU WANT THE OUTPUT ON THE SCREEN"
  221. 448 PRINT"OR THE PRINTER.  ENTER  [208] [146] OR  [211] [146]"
  222. 450 INPUT OU$
  223. 452 PRINT"[147]"
  224. 454 IFLEFT$(OU$,1)<>"P"AND LEFT$(OU$,1)<>"S"THEN446
  225. 456 IFLEFT$(OU$,1)="P"THEN OPEN4,4:PRINT#4,CHR$(17)
  226. 458 IFLEFT$(OU$,1)="S"THEN OPEN4,3
  227. 460 PRINT#4," [197][204][197][195][212][210][201][195][193][204] [211][197][210][214][201][195][197] [195][193][204][195][213][204][193][212][201][207][206][211]"
  228. 462 PRINT#4,
  229. 464 PRINT#4,
  230. 466 PRINT#4,"[212]HE HOUSE IS ";FS;" SQUARE FEET."
  231. 468 PRINT
  232. 470 PRINT#4,"[212]HE SMALL APPLIANCE LOAD IS ";SAL/1000;" KW."
  233. 472 PRINT
  234. 474 PRINT#4,"[212]HE GENERAL LIGHTING LOAD IS";GLL/1000;" KW."
  235. 476 PRINT
  236. 478 PRINT#4,"[212]HE RANGE LOAD IS";RAN/1000;" KW"
  237. 480 PRINT#4,
  238. 482 IF LEFT$(OU$,1)="P"THEN490
  239. 484 PRINT"[200]IT [211]PACE [212]O [195]ONTINUE [207]UTPUT[146]"
  240. 486 GETB$:IFB$=""THEN486
  241. 488 PRINT"[147]"
  242. 490 PRINT#4,"[212]HE LIGHTING PANEL NEEDS ";TBC;" BRANCHES"
  243. 492 PRINT
  244. 494 PRINT
  245. 496 PRINT#4,"[205]AIN FEEDERS #";MFS$;" CONDUCTORS"
  246. 498 PRINT
  247. 500 PRINT#4,"[196]IAMETER OF CONDUCTOR ";CDI;CHR$(34)
  248. 502 PRINT
  249. 504 PRINT#4,"[205]AIN CONDUIT SIZE ";CS;CHR$(34)
  250. 506 PRINT
  251. 508 PRINT#4,"[205]AIN DISCONNECT ";MD;" AMPS"
  252. 510 PRINT
  253. 512 PRINT#4,"[210]ANGE FEEDER #";CRS;" CONDUCTORS"
  254. 514 PRINT#4
  255. 516 IF LEFT$(OU$,1)="P"THEN524
  256. 518 PRINT"[200]IT [211]PACE [212]O [195]ONTINUE [207]UTPUT[146]"
  257. 520 GETB$:IFB$=""THEN 520
  258. 522 PRINT"[147]"
  259. 524 RN=1
  260. 526 IFRM$(RN)="STOP"THEN534
  261. 528 PRINT#4,RM$(RN);" NEEDS";NR(RN);"RECEPTACLES"
  262. 530 RN=RN+1
  263. 532 GOTO526
  264. 534 PRINT#4,
  265. 536 PRINT#4,
  266. 538 PRINT#4,"[196][207][206][197]";CHR$(145)
  267. 540 CLOSE4
  268. 542 PRINT"[200]IT [211]PACE [212]O [195]ONTINUE"
  269. 544 GETB$:IFB$=""THEN 544
  270. 546 RETURN
  271. 548 :
  272. 550 REM **** INSTRUCTORS INST. *****
  273. 552 :
  274. 554 PRINT"[147]       [201][206][211][212][210][213][195][212][207][210]'[211][160][201][206][211][212][210][213][195][212][201][207][206][211] [146]"
  275. 556 PRINT"  [212]HIS PROGRAM IS DESIGNED TO DESIGN"
  276. 558 PRINT"   ELECTRICAL SERVICES ACCORDING TO"
  277. 560 PRINT" THE ELECTRICAL CODES.  [212]HE PROGRAM'S"
  278. 562 PRINT"   CHARACTERISTICS ARE IN THE STUDENT "
  279. 564 PRINT"  INSTRUCTIONS.  [212]HE CALCULATIONS AND"
  280. 566 PRINT"    DATA ARE BASED ON THE [197]LECTRICAL"
  281. 568 PRINT"  [211]AFTEY [195]ODE [194]OOK.  [193]NY MODIFICATIONS"
  282. 570 PRINT"  CAN BE DONE BY SIMPLY CHANGEING DATA"
  283. 572 PRINT"  STATEMENTS AT THE END OF THE PROGRAM"
  284. 574 PRINT" [195]HECK OUT THE 'MODIFICATIONS' SECTION"
  285. 576 PRINT"  FOR MORE DETAILS ON CHANGEING DATA."
  286. 578 PRINT"    [201]F YOU FIND ANY MISTAKES IN THE"
  287. 580 PRINT"  PROGRAM PLEASE FIX THEM AND TRY TO"
  288. 582 PRINT"         CONTACT ME ABOUT THEM."
  289. 584 PRINT"      [200]IT [211]PACE [212]O [210]ETURN [212]O [205]ENU       [146]"
  290. 586 GETB$:IFB$=""THEN 586
  291. 588 GOTO 116: REM RETURN TO MENU
  292. 590 REM ******  MODIFICATIONS ******
  293. 592 PRINT"[147]        [205] [207][160][196][160][201][160][198][160][201][160][195][160][193][160][212][160][201][160][207][160][206][160][211] [146]"
  294. 594 PRINT"  [212]HIS PROGRAM WAS WRITTEN SO THAT ANY"
  295. 596 PRINT" MODIFACATIONS WOULD BE RELETIVELY EASY"
  296. 598 PRINT"   TO MAKE.  [193]LL OF THE DATA IS STORED"
  297. 600 PRINT"   IN ARRAYS.  [212]HESE ARRAYS ARE FILLED"
  298. 602 PRINT" FROM DATA STATEMENTS STARTING AT LINE"
  299. 604 PRINT" 1580.  [212]O MAKE ANY CHANGES JUST CHANGE"
  300. 606 PRINT"DATA STATEMENTS ACCORDING TO THE TABLES"
  301. 608 PRINT"  AS FOUND IN THE REAR OF THE [207]NTARIO"
  302. 610 PRINT"      [197]LECTRICAL [211]AFETY [195]ODE [194]OOK"
  303. 612 PRINT"      HIT SPACE TO RETURN TO MENU       [146]"
  304. 614 GETA$:IFA$=""THEN614
  305. 616 GOTO116
  306. 618 REM ******* D A T A ***********
  307. 620 :
  308. 622 REM TABLE TWO H.E.P.C.
  309. 624 :
  310. 626 DATA 14,12,10,8,6,4,3,2,1,0,00,000,0000
  311. 628 DATA15,20,30,40,55,70,80,100,110,125,145,165,195
  312. 630 :
  313. 632 REM TABLE TEN H.E.P.C.
  314. 634 :
  315. 636 DATA 14,12,10,8,6,4,3,2,1,0,00,000,0000
  316. 638 DATA.131,.148,.168,.248,.323,.372,.401,.433,.508,.549,.595,.647,.705
  317. 640 :
  318. 642 REM TABLE SIX H.E.P.C.
  319. 644 :
  320. 646 DATA0,.5,.75,1,1.25,1.5,2
  321. 648 DATA.1,15,27,44,76,101,171
  322. 650 DATA.11,12,22,36,63,85,141
  323. 652 DATA.12,10,18,30,53,72,119
  324. 654 DATA.13,9,15,26,45,61,105
  325. 656 DATA.14,7,13,22,39,53,87
  326. 658 DATA.15,6,11,19,33,46,76
  327. 660 DATA.16,6,10,17,29,40,67
  328. 662 DATA.17,5,9,15,26,35,59
  329. 664 DATA.18,4,8,13,23,32,53
  330. 666 DATA.19,4,7,12,21,28,47
  331. 668 DATA.2,3,6,10,19,26,42
  332. 670 DATA.225,3,5,8,15,20,33
  333. 672 DATA.25,1,4,7,12,16,27
  334. 674 DATA.275,1,3,5,10,13,22
  335. 676 DATA.3,1,3,4,8,11,19
  336. 678 DATA.325,1,1,4,7,9,16
  337. 680 DATA.35,1,1,3,6,8,13
  338. 682 DATA.375,1,1,3,5,7,12
  339. 684 DATA.4,1,1,2,4,6,10
  340. 686 DATA.425,1,1,1,4,5,9
  341. 688 DATA.45,1,1,1,3,5,8
  342. 690 DATA.475,0,1,1,3,4,7
  343. 692 DATA.5,0,1,1,3,4,6
  344. 694 DATA.55,0,1,1,1,3,5
  345. 696 DATA.6,0,1,1,1,2,4
  346. 698 DATA.65,0,0,1,1,1,4
  347. 700 DATA.7,0,0,1,1,1,3
  348. 702 DATA.75,0,0,1,1,1,3
  349. 704 :
  350. 706 REM MAIN DISCONNECT SIZES IN AMPS
  351. 708 :
  352. 710 DATA60,100,200,400,600
  353.